/**
 * 路由设置（禁止用户直接通过url进入内部页面，起到拦截作用）
 */

import router from "./index"
import {getAdministratorToken, getToken, setAdministratorToken, setToken} from "@/utils/cookie";

/**
 * 白名单列表
 */
const whiteList=['/background','/login','/register','/general/commodity',"/general/restaurantWebsiteInformation","/general/commodityWebsiteInformation"];

router.beforeEach((to,from,next)=>{
    if(getToken()==='true'){
        /**
         * 用户
         * 已经登录并且要跳转的是登录页面
         */
        if(to.path==="/login"){
            /**
             * 跳转至登录页面
             */
            next();
            setToken(false);
        }else {
            /**
             * 跳转至下一个页面
             */
            next();
        }
    }else if(getAdministratorToken()==='true'){
        /**
         * 管理员
         * 已经登录并且要跳转的是登录页面
         */
        if(to.path==="/login"){
            /**
             * 跳转至登录页面
             */
            next();
            setAdministratorToken(false);
        }else {
            /**
             * 跳转至下一个页面
             */
            next();
        }
    }else {
        /**
         * 在登录白名单，直接进入
         */
        if(whiteList.includes(to.path)){
            next();
        }else{
            /**
             * 如果不在登录白名单中重定向到登录页面
             */
            next(`/background?redirect=${to.fullPath}`);
        }
    }
})
